#pragma once
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include"Stack.h"
#include <assert.h>
#include <string.h>
void InsertSort1(int* a, int n);
void InsertSort2(int* a, int n);
void ShellSort1(int* a, int n);
void ShellSort2(int* a, int n);
void HeapSort1(int* a, int n);
void HeapSort2(int* a, int n);
void SelectSort1(int* a, int n);
void SelectSort2(int* a, int n);
void BubbleSort1(int* a, int n);
void BubbleSort2(int* a, int n);
void QuickSort1(int* a, int left, int right);
void QuickSort2(int* a, int left, int right);
void QuickSort3(int* a, int left, int right);
void QuickSort4(int* a, int left, int right);
void QuickSort5(int* a, int left, int right);
void QuickSortNonR(int* a, int n);
void MergeSort(int* a, int n);
void MergeSortNonR(int* a, int n);
void CountSort(int* a, int n);
int BF(char* str, char* sub);
int KMP(char* str, char* sub, int pos);